home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 75 / 075.d81 / hi source (.txt) < prev    next >
Commodore BASIC  |  2022-08-26  |  7KB  |  467 lines

  1. 100 sys700
  2. 110 .opt oo
  3. 120 *= $ca00
  4. 130 ffd2 =$ffd2
  5. 140 getin =$ffe4
  6. 150 base =$a000
  7. 160 jmp start
  8. 170 lcount =*
  9. 180 .byte 0:eof =*:.byte 0,0
  10. 190 temp =*
  11. 200 .byte 0
  12. 210 col =*
  13. 220 .byte 3
  14. 230 fade =*
  15. 240 .byte 15,15,12,11,0
  16. 250 pretty =*
  17. 260 .byte 0,0
  18. 270 menu =*
  19. 280 .asc "[195][210][211][210] up/down [159]page [195][159] color [209][159] exit":.byte 0
  20. 290 prlen =*:.byte 0,0
  21. 300 prloc =*:.byte 0,0
  22. 310 page =*:.byte 0
  23. 320 curpage =*:.byte 0
  24. 330 border =*:.byte 0
  25. 340 backgr =*:.byte 0
  26. 350 start jsr $aefd
  27. 360 jsr $ad9e
  28. 370 jsr $b6a3
  29. 380 ldx $22
  30. 390 ldy $23
  31. 400 jsr $ffbd        
  32. 410 loadfile lda #1
  33. 420 ldx #8
  34. 430 ldy #0
  35. 440 jsr $ffba
  36. 450 lda #0
  37. 460 ldx #<base
  38. 470 ldy #>base
  39. 480 jsr $ffd5
  40. 490 stx eof
  41. 500 sty eof+1
  42. 550 storzero stx 251
  43. 560 sty 252
  44. 570 ldy #0
  45. 580 tya
  46. 610 sta (251),y
  47. 631 lda 53280
  48. 632 sta border
  49. 633 lda 53281
  50. 634 sta backgr
  51. 635 ldy #0
  52. 636 sty 53280
  53. 637 sty 53281
  54. 640 jsr $aefd
  55. 650 jsr $ad9e
  56. 660 jsr $b6a3
  57. 670 ldx $22:stx prloc
  58. 680 ldy $23:sty prloc+1
  59. 690 ldx #23
  60. 700 sta prlen
  61. 710 lsr
  62. 720 sta prlen+1
  63. 730 lda #20
  64. 740 sec
  65. 750 sbc prlen+1
  66. 760 sta prlen+1
  67. 770 jsr figureit
  68. 771 lda 1
  69. 772 ora #1
  70. 773 sta 1
  71. 780 jsr videoin
  72. 790 lda #"[147]"
  73. 800 jsr $ffd2
  74. 810 lda #1
  75. 820 sta 646
  76. 830 lda #"[162]"
  77. 840 ldy #39
  78. 850 topline jsr $ffd2
  79. 860 dey
  80. 870 bpl topline
  81. 880 lda #3
  82. 890 sta 199
  83. 900 sta 646
  84. 910 lda #32
  85. 920 ldy #119
  86. 930 line2 jsr $ffd2
  87. 940 dey
  88. 950 bpl line2
  89. 960 lda #0
  90. 970 sta 199
  91. 980 lda #11
  92. 990 sta 646
  93. 1000 lda #"[184]"
  94. 1010 ldy #39
  95. 1020 line3 jsr $ffd2
  96. 1030 dey
  97. 1040 bpl line3
  98. 1050 lda #6
  99. 1060 sta 646
  100. 1070 lda #"[176]"
  101. 1080 jsr $ffd2
  102. 1090 ldy #37
  103. 1100 lda #"[192]"
  104. 1110 sigh jsr $ffd2
  105. 1120 dey
  106. 1130 bpl sigh
  107. 1140 lda #"[174]"
  108. 1150 jsr $ffd2
  109. 1160 ldx #15
  110. 1170 mainarea ldy #37
  111. 1180 lda #"[221]"
  112. 1190 jsr $ffd2
  113. 1200 lda #3
  114. 1210 sta 646
  115. 1220 lda #32
  116. 1230 ma1 jsr $ffd2
  117. 1240 dey
  118. 1250 bpl ma1
  119. 1260 lda #6
  120. 1270 sta 646
  121. 1280 lda #"[221]"
  122. 1290 jsr $ffd2
  123. 1300 dex
  124. 1310 bpl mainarea
  125. 1320 lda #"[173]"
  126. 1330 jsr $ffd2
  127. 1340 lda #"[192]"
  128. 1350 ldy #37
  129. 1360 ma3 jsr $ffd2
  130. 1370 dey
  131. 1380 bpl ma3
  132. 1390 lda #"[189]"
  133. 1400 jsr $ffd2
  134. 1410 ldy #25
  135. 1420 linelink lda 217,y
  136. 1430 ora #128
  137. 1440 sta 217,y
  138. 1450 dey
  139. 1460 bpl linelink
  140. 1470 stx 251
  141. 1480 sty 252
  142. 1490 ldy #3:ldx #23
  143. 1500 clc
  144. 1510 jsr $fff0
  145. 1520 ldy #0
  146. 1530 smenu lda menu,y
  147. 1540 beq spretty
  148. 1550 jsr $ffd2
  149. 1560 iny
  150. 1570 jmp smenu
  151. 1580 spretty ldx #3
  152. 1590 stx 199
  153. 1600 stx 646
  154. 1610 ldx #2
  155. 1620 ldy prlen+1
  156. 1630 clc:jsr $fff0
  157. 1640 lda prloc
  158. 1650 sta 251
  159. 1660 lda prloc+1
  160. 1670 sta 252
  161. 1680 ldy #0
  162. 1690 showpret lda (251),y
  163. 1700 jsr $ffd2
  164. 1710 iny
  165. 1720 cpy prlen
  166. 1730 bne showpret
  167. 1740 main lda #<base
  168. 1750 sta 251
  169. 1760 lda #>base
  170. 1770 sta 252
  171. 1780 showpage ldx #6
  172. 1790 ldy #1
  173. 1800 clc
  174. 1810 jsr $fff0
  175. 1820 lda #0
  176. 1830 sta 646
  177. 1840 ldy #0
  178. 1850 sty lcount
  179. 1860 sty 199
  180. 1870 getit lda 1
  181. 1880 and #254
  182. 1890 sta 1
  183. 1900 sei
  184. 1910 getdata lda (251),y
  185. 1920 beq interupt
  186. 1930 cmp #13
  187. 1940 bne print
  188. 1950 jsr carriage
  189. 1960 lda lcount
  190. 1970 cmp #16
  191. 1980 bne getdata
  192. 1990 interupt cli
  193. 2000 lda 1
  194. 2010 ora #1
  195. 2020 sta 1
  196. 2030 jsr fadein
  197. 2040 jsr prinpage
  198. 2050 scankey jsr getin
  199. 2060 cmp #0
  200. 2070 beq scankey
  201. 2080 cmp #""
  202. 2090 bne cup
  203. 2100 jsr flipup
  204. 2110 jsr fadeout
  205. 2120 jmp showpage
  206. 2130 cup cmp #"[145]"
  207. 2140 bne chcol
  208. 2150 jsr flipdown
  209. 2160 jsr fadeout
  210. 2170 jmp showpage
  211. 2180 chcol cmp #"c"
  212. 2190 bne chhome
  213. 2200 jsr color
  214. 2210 jmp scankey
  215. 2220 chhome cmp #""
  216. 2230 bne chshift
  217. 2240 jsr fadeout
  218. 2250 lda #1
  219. 2260 sta curpage:jsr flipdown
  220. 2270 jmp showpage
  221. 2280 chshift cmp #"[147]"
  222. 2290 bne chquit
  223. 2300 ldx page
  224. 2310 stx curpage
  225. 2320 jsr fadeout
  226. 2330 jsr flipup
  227. 2340 jmp showpage
  228. 2350 chquit cmp #"q"
  229. 2360 beq quit
  230. 2370 jmp scankey
  231. 2380 quit lda 1
  232. 2390 ora #1
  233. 2400 sta 1
  234. 2410 jsr videoout
  235. 2420 rts
  236. 2430 print jsr $ffd2
  237. 2440 jsr bump
  238. 2450 jmp getit
  239. 2460 carriage jsr $ffd2
  240. 2470 lda #""
  241. 2480 jsr bump
  242. 2490 jsr $ffd2
  243. 2500 inc lcount
  244. 2510 rts
  245. 2520 color inc col
  246. 2530 lda col
  247. 2540 and #15
  248. 2550 sta col:sta 646
  249. 2560 cmp #0
  250. 2570 beq color
  251. 2580 cwait lda 53265
  252. 2590 bpl cwait
  253. 2600 ldy #37
  254. 2610 lda col
  255. 2620 wcolor sta 1265+54272,y
  256. 2630 sta 1305+54272,y
  257. 2640 sta 1345+54272,y
  258. 2650 sta 1385+54272,y
  259. 2660 sta 1425+54272,y
  260. 2670 sta 1465+54272,y
  261. 2680 sta 1505+54272,y
  262. 2690 sta 1545+54272,y
  263. 2700 sta 1585+54272,y
  264. 2710 sta 1625+54272,y
  265. 2720 sta 1665+54272,y
  266. 2730 sta 1705+54272,y
  267. 2740 sta 1745+54272,y
  268. 2750 sta 1785+54272,y
  269. 2760 sta 1825+54272,y
  270. 2770 sta 1865+54272,y
  271. 2780 dey
  272. 2790 bpl wcolor
  273. 2800 rts
  274. 2810 bump inc 251
  275. 2820 beq bump2
  276. 2830 rts
  277. 2840 bump2 inc 252
  278. 2850 rts
  279. 2860 clear lda 53265
  280. 2870 bpl clear
  281. 2880 ldy #37
  282. 2890 lda #32
  283. 2900 wipe sta 1265,y
  284. 2910 sta 1305,y
  285. 2920 sta 1345,y
  286. 2930 sta 1385,y
  287. 2940 sta 1425,y
  288. 2950 sta 1465,y
  289. 2960 sta 1505,y
  290. 2970 sta 1545,y
  291. 2980 sta 1585,y
  292. 2990 sta 1625,y
  293. 3000 sta 1665,y
  294. 3010 sta 1705,y
  295. 3020 sta 1745,y
  296. 3030 sta 1785,y
  297. 3040 sta 1825,y
  298. 3050 sta 1865,y
  299. 3060 dey
  300. 3070 bpl wipe
  301. 3080 rts
  302. 3090 figureit lda 1
  303. 3091 and #254
  304. 3092 sta 1
  305. 3099 lda #<base
  306. 3100 sta 251:sta ptable
  307. 3110 lda #>base
  308. 3120 sta 252:sta ptable+1
  309. 3130 ldy #0
  310. 3140 ldx #0
  311. 3150 stx page
  312. 3160 apage lda (251),y
  313. 3170 bne ckrt
  314. 3180 rts
  315. 3190 ckrt cmp #13
  316. 3200 bne incpage
  317. 3210 jsr found
  318. 3220 incpage inc 251
  319. 3230 beq bpage
  320. 3240 jmp apage
  321. 3250 bpage inc 252
  322. 3260 jmp apage
  323. 3270 found inx
  324. 3280 cpx #15
  325. 3290 bne foundout
  326. 3300 ldx #0
  327. 3310 inc page
  328. 3320 inc 251
  329. 3330 bne cpage
  330. 3340 inc 252
  331. 3350 cpage lda page
  332. 3360 asl
  333. 3370 tax
  334. 3380 lda 251
  335. 3390 sta ptable,x
  336. 3400 lda 252
  337. 3410 inx
  338. 3420 sta ptable,x
  339. 3430 ldx #0
  340. 3440 foundout rts
  341. 3450 flipup lda curpage
  342. 3460 cmp page
  343. 3470 bne ghead
  344. 3480 jmp chpage
  345. 3490 ghead inc curpage
  346. 3500 chpage lda curpage
  347. 3510 asl
  348. 3520 tax
  349. 3530 lda ptable,x
  350. 3540 sta 251
  351. 3550 inx
  352. 3560 lda ptable,x
  353. 3570 sta 252
  354. 3580 rts
  355. 3590 flipdown lda curpage
  356. 3600 bne sokay
  357. 3610 jmp chpage
  358. 3620 sokay dec curpage
  359. 3630 jmp chpage
  360. 3640 fadeout lda col
  361. 3650 sta temp
  362. 3660 sei
  363. 3670 ldx #0
  364. 3680 floop lda fade,x
  365. 3690 sta col
  366. 3700 jsr cwait
  367. 3710 inx
  368. 3720 cpx #5
  369. 3730 bne floop
  370. 3740 fout jsr clear
  371. 3750 lda temp
  372. 3760 sta col
  373. 3770 cli:rts
  374. 3780 fadein lda col
  375. 3790 sta temp
  376. 3800 ldx #5
  377. 3810 sei
  378. 3820 filoop lda fade,x
  379. 3830 sta col
  380. 3840 jsr cwait
  381. 3850 dex
  382. 3860 bne filoop
  383. 3870 lda temp
  384. 3880 sta col
  385. 3890 jsr cwait
  386. 3900 cli:rts
  387. 3910 prinpage ldx #24
  388. 3920 ldy #17
  389. 3930 clc
  390. 3940 jsr $fff0
  391. 3950 lda #12
  392. 3960 sta 646
  393. 3970 ldx curpage
  394. 3980 inx
  395. 3990 lda #0
  396. 4000 sta 199
  397. 4010 clc            
  398. 4020 jsr $bdcd
  399. 4030 lda #" "
  400. 4040 jsr $ffd2
  401. 4050 lda #"o"
  402. 4060 jsr $ffd2
  403. 4070 lda #"f"
  404. 4080 jsr $ffd2
  405. 4090 lda #" "
  406. 4100 jsr $ffd2
  407. 4110 lda #0
  408. 4120 ldx page
  409. 4130 inx
  410. 4140 jsr $bdcd
  411. 4150 lda #" "
  412. 4160 jsr $ffd2
  413. 4170 lda #"[145]"
  414. 4180 jmp $ffd2
  415. 4190 videoin lda #0
  416. 4200 sta 251
  417. 4210 sta 253
  418. 4220 lda #>1024
  419. 4230 sta 252
  420. 4240 lda #>$e000
  421. 4250 sta 254
  422. 4260 jsr copy
  423. 4270 lda #>$d800
  424. 4280 sta 252
  425. 4290 lda #>$e400
  426. 4300 sta 254
  427. 4310 jsr copy
  428. 4320 rts
  429. 4330 videoout lda #0
  430. 4340 sta 251
  431. 4350 sta 253
  432. 4360 lda #>$e000
  433. 4370 sta 252
  434. 4380 lda #>$0400
  435. 4390 sta 254
  436. 4400 jsr copy
  437. 4410 lda #>$e400
  438. 4420 sta 252
  439. 4430 lda #>$d800
  440. 4440 sta 254
  441. 4450 jsr copy
  442. 4460 lda border
  443. 4470 sta 53280
  444. 4480 lda backgr
  445. 4490 sta 53281
  446. 4500 rts
  447. 4510 copy ldx #3
  448. 4520 ldy #0
  449. 4530 sei
  450. 4540 lda 1
  451. 4550 and #253
  452. 4560 sta 1
  453. 4570 copya lda (251),y
  454. 4580 sta (253),y
  455. 4590 iny
  456. 4600 bne copya
  457. 4610 inc 252
  458. 4620 inc 254
  459. 4630 dex
  460. 4640 bpl copya
  461. 4650 lda 1
  462. 4660 ora #2
  463. 4670 sta 1
  464. 4680 cli
  465. 4690 rts
  466. 4700 ptable =*
  467.